import Dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';
import updateLocale from 'dayjs/plugin/updateLocale';
import calenderPlugin from 'dayjs/plugin/calendar';
Dayjs.extend(calenderPlugin);
Dayjs.extend(updateLocale);
// 修改语言配置
Dayjs.updateLocale('zh-cn', {
    // A : 上午/下午/晚上 , dddd: 星期
    calendar: {
        lastDay: '[昨天]MM-DD',
        sameDay: '[今天]MM-DD',
        nextDay: '[明天]MM-DD',
        lastWeek: '[上]ddddMM-DD',
        nextWeek: 'ddddMM-DD',
        sameElse: 'ddddMM-DD',
    },
});
// 使用 zh-cn
Dayjs.locale('zh-cn');
export default {
    getTabsList(vm) {
        if (vm.cinemaModel && !vm.cinemaModel.dates) return [];
        return vm.cinemaModel.dates.map((e, i) => {
            return {
                index: i,
                name: Dayjs(e.date).calendar(),
                list: e.list || [],
            };
        });
    },
    getDateTime(l, time) {
        if (time === 'start') {
            return Dayjs(l.startTime).format('HH:mm');
        }
        if (time === 'end') {
            return Dayjs(l.endTime).format('HH:mm') + '散场';
        }
    },
    getPublishDate(l) {
        return Dayjs(l.nowTime).isBefore(Dayjs(l.startTime));
    },
    // async getMoiveRate(vm) {
    // 	return new Promise(async resolve => {
    // 		try{
    // 			let res = await vm.$api.getMoiveRate()
    // 			resolve(res || 1)
    // 		}catch(e){
    // 			//TODO handle the exception
    // 			resolve(1)
    // 		}
    // 	})
    // },
    // 计算价格折扣比例
    getDataRateList(vm) {
        let list = vm.tabsList[vm.tabIndex].list || [];
        list = this.getTimerNowList(vm, list);
        list.forEach(item => {
            if (item.salePrice) {
                item.marketPrice = parseFloat(item.salePrice / vm.rateValue).toFixed(2);
                item.mitPrice = parseFloat(Number(item.marketPrice) - item.salePrice).toFixed(2);
                item.predictPirce = this.getPredictPirce(vm, item);
            }
        });
        return list;
    },
    getPredictPirce(vm, e) {
        let num = e.salePrice;
        if (vm.maxCoupon.saveAmount) {
            if (e.salePrice <= vm.maxCoupon.saveAmount) {
                num = 0;
            } else {
                num = parseFloat(e.salePrice - vm.maxCoupon.saveAmount).toFixed(2);
            }
        }
        return num;
    },
    getTimerNowList(vm, e) {
        let list = [];
        if (Array.isArray(e)) {
            list = e.filter(item => {
                // isItWithinTwoHours 是否在两小时内
                item.isItWithinTwoHours = false;
                item.nowTime = vm.nowTime ?? Dayjs().format('YYYY-MM-DD HH:mm:ss');
                try {
                    if (item.startTime) {
                        let nowDate = Dayjs(vm.nowTime).valueOf();
                        let startDate = Dayjs(item.startTime).valueOf();
                        // 一个半小时以内
                        if (startDate - nowDate > 5400000) {
                            return item;
                            // 下面的代码时后面加的： 提前2小时不可购票的场次展示出来，但购票按钮显示停止售票，小字提示【请提前2小时购票】
                        } else {
                            item.isItWithinTwoHours = true;
                            return item;
                        }
                    }
                } catch (e) {
                    //TODO handle the exception
                    return item;
                }
            });
        }
        return list;
    },
};
